home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zh.d64 / txt.char by char < prev    next >
Text File  |  2007-03-01  |  2KB  |  111 lines

  1. ├╚┴╥ ┬┘ ├╚┴╥
  2.  
  3. BY ─ICK ╦LINGENS
  4.  
  5. ╔F ONE MUST MAKE A CHOICE IN A
  6. PROGRAM MENU, IT CAN BE PROGRAMMED
  7. LIKE THIS:
  8.  
  9.    ╨╥╔╬╘ "0 - [╙]TOP PROGRAM"
  10.    ╨╥╔╬╘ "1 - [┴]DD RECORDS"
  11.    ╨╥╔╬╘ "2 - [─]ELETE RECORDS"
  12.    ╨╥╔╬╘ "3 - [├]HANGE RECORDS"
  13.    //
  14.    ╨╥╔╬╘ "═AKE YOUR CHOICE"
  15.    ╥┼╨┼┴╘
  16.      ╔╬╨╒╘ "": C$
  17.    ╒╬╘╔╠ C$ ╔╬ "╙S┴A─D├C0123"
  18.    //
  19.    ├┴╙┼ C$ ╧╞
  20.    ╫╚┼╬ "0","╙","S"
  21.     :
  22.     :
  23.    ╫╚┼╬
  24.     :
  25.  
  26. ┼SPCIALLY IN USER FRIENDLY PROGRAMS ╔
  27. OFTEN REPLACE THE ╥┼╨┼┴╘ STRUCTURE
  28. WITH THE FOLLOWING FUNCTION CALL
  29.  
  30.    C$:=CH$("╙S┴A─D├C0123")
  31.  
  32. WITH
  33.  
  34.   ╞╒╬├ CH$(ANSWER$) ├╠╧╙┼─
  35.    ╒╙┼ SYSTEM
  36.    P$:=├╚╥$(191) // INPUT CURSOR
  37.    RON$:=├╚╥$(18) // REVERSE ON
  38.    ROFF$:=├╚╥$(146) // REVERSE OFF
  39.    CLT$:=├╚╥$(157) // CURSOR LEFT
  40.    ╥┼╨┼┴╘ 
  41.     ╥┼╨┼┴╘ 
  42.      ╨╥╔╬╘ RON$+P$+ROFF$+CLT$, //REV
  43.      R$:=╦┼┘$
  44.      ╨╥╔╬╘ P$+CLT$, // NORMAL
  45.     ╒╬╘╔╠ R$<>""0""
  46.     OK:=R$ ╔╬ ANSWER$
  47.     ╔╞ ╬╧╘ OK ╘╚┼╬ BELL(1)
  48.    ╒╬╘╔╠ OK
  49.    ╨╥╔╬╘ R$ // SHOW ALLOWED CHAR
  50.    // ╨╥╔╬╘ R$,
  51.    //
  52.    // ╒SE THIS LINE FOR REPEATED
  53.    // INPUT OF SELECTED CHARACTERS.
  54.    //
  55.    ╥┼╘╒╥╬ R$
  56.   ┼╬─╞╒╬├ CH$
  57.  
  58. ╘HE FUNCTION USES ITS OWN CURSOR,
  59. ├╚╥$(191), AND REACTS ON INCORRECT
  60. INPUT WITH ┬┼╠╠(1). ╔F REPEATED INPUT
  61. IS NEEDED FROM A SELECTED SET, ONE
  62. CAN USE THE PRINT STATEMENT ENDED
  63. WITH COMMA.
  64.  
  65. ┼XAMPLE.
  66.  
  67. ╨╥╔╬╘ "╘YPE CURRENT YEAR ",
  68. YEAR$:=CH$("89") // FIRST CHAR
  69. YEAR$:+CH$("0123456789") // SECOND
  70. ╨╥╔╬╘ // NEEDED AFTER REPEATED INPUT
  71.  
  72. ┬ECAUSE VERSION 0.14 DOES NOT ALLOW
  73. STRING FUNCTIONS ONE MUST USE A
  74. REFERENCE PARAMETER AND A PROCEDURE.
  75.  
  76. // FOR VERSION 0.14
  77. //
  78. PROC CH(REF F$, ANSWER$) CLOSED
  79.  DIM P$ OF 1, RON$ OF 1, ROFF$ OF 1
  80.  DIM CLT$ OF 1
  81.  //
  82.  P$:=CHR$(191); RON$:=CHR$(18);
  83.  ROFF$:=CHR$(146); CLT$:=CHR$(157)
  84.  //
  85.  REPEAT
  86.   REPEAT
  87.    PRINT RON$+P$+ROFF$+CLT$,
  88.    F$:=KEY$
  89.    PRINT P$+CLT$,
  90.   UNTIL F$<>CHR$(0)
  91.   OK:=(F$ IN ANSWER$)
  92.  UNTIL OK
  93.  PRINT F$
  94.  // OR PRINT F$,
  95. ENDPROC CH
  96.  
  97. USED IN THE TWO EXAMPLES ABOVE:
  98.  
  99.   CH(C$,"1234"+CHR$(13)")
  100.  
  101. AND
  102.  
  103. CH(YEAR$,"89")
  104. CH(C$,"0123456789") // C$ AS HELP
  105. YEAR$:+C$
  106.  
  107. ╘HE FUNCTION IS USED IN TWO 2.0
  108. PROGRAMS ON THE DISK: ╔╬╞╧-├╚┴╧╙ AND
  109. ├╚┴╥'┬┘'├╚┴╥ AND IN THE 0.14 PROGRAM
  110. ├╚┴╥'╔╬'0.14.
  111.